#-*- codeing = utf-8 -*-
#@Time : 2020/9/13 10:31
#@Author : 阳某
#@File : 线程池.py
#@Software : PyCharm
'''
import time
# 使用单线程串行方式执行
def get_page(str):
    print('正在下载',str)
    time.sleep(2)
    print('下载成功',str)
name_list = ['xiaozi','aa','bb','cc']
start_time = time.time()
for i in range(len(name_list)):
    get_page(name_list[i])
end_time = time.time()
print("%s s"%(end_time-start_time))     #8秒
'''
import time
# 导入线程池相对应的类
from multiprocessing.dummy import Pool
# 使用线程池方式执行     #适当使用       当阻塞对象的个数远远超过线程池中的线程个数时就没有那么明显了
def get_page(str):
    print('正在下载',str)
    time.sleep(2)
    print('下载成功',str)
name_list = ['xiaozi','aa','bb','cc']       #url列表
start_time = time.time()
pool = Pool(4)      #4个url就4个阻塞
# 将列表中的每一个元素交给get_page处理，map方法的返回值就是get_page 的返回值，有就是几个，也就是map的返回对象是一个列表
pool.map(get_page,name_list)
end_time = time.time()
print("%s s"%(end_time-start_time))     # 2秒